From a8a8953873063435e3c73739874edbdce5c114dc Mon Sep 17 00:00:00 2001 From: Andrew Cooper Date: Thu, 7 Nov 2013 15:15:28 +0100 Subject: [PATCH] x86/acpi: Warn about multiple HPET tables Signed-off-by: Andrew Cooper Reviewed-by: Tim Deegan --- xen/arch/x86/acpi/boot.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/xen/arch/x86/acpi/boot.c b/xen/arch/x86/acpi/boot.c index df264233cd..6d7984ffda 100644 --- a/xen/arch/x86/acpi/boot.c +++ b/xen/arch/x86/acpi/boot.c @@ -289,6 +289,22 @@ static int __init acpi_parse_hpet(struct acpi_table_header *table) return -1; } + /* + * Some BIOSes provide multiple HPET tables. Sometimes this is a BIOS + * bug; the intended way of supporting more than 1 HPET is to use AML + * entries. + * + * If someone finds a real system with two genuine HPET tables, perhaps + * they will be kind and implement support. Until then however, warn + * that we will ignore subsequent tables. + */ + if (hpet_address) + { + printk(KERN_WARNING PREFIX + "Found multiple HPET tables. Only using first\n"); + return -1; + } + hpet_address = hpet_tbl->address.address; hpet_blockid = hpet_tbl->sequence; printk(KERN_INFO PREFIX "HPET id: %#x base: %#lx\n", -- 2.30.2